// src/store/index.js

import Vue from 'vue';
import Vuex from 'vuex';
import { fetchData } from '@/api'; // 引入之前创建的 api/index.js 中的 fetchData 函数

Vue.use(Vuex);

const state = {
  userData: {
    name:'66666'
  },
  messageObj: {
    num: 0,
    content: null,
    change: false
  }
};

const mutations = {
  setUserData(state, data) {
    state.userData = data;
  },
  setMessageStore(state, data) {
    state.messageObj.num = data.num
    state.messageObj.content = data.content
    state.messageObj.change = data.change
  },
  resetMessageStore(state) {
    state.messageObj.num = 0
    state.messageObj.content = null
    state.messageObj.change = false
  }
};

const actions = {
  async fetchUserData({ commit }) {
    try {
      const data = await fetchData(); // 调用 api 中的 fetchData 函数获取数据
      commit('setUserData', data); // 提交 mutation 来更新状态
    } catch (error) {
      console.error('Error fetching user data:', error);
      throw error;
    }
  }
};

export default new Vuex.Store({
  state,
  mutations,
  actions,
  modules: {
    // 可以添加其他的 Vuex 模块
  }
});
